#include <iostream>
#include <boost/test/unit_test.hpp>
#include <boost/test/included/unit_test_framework.hpp>
#include "../Date.h"

using namespace boost::unit_test;

namespace kc_sf
{
	
////////////////////////////////////////////////////////////////////////
//	class DateTest
////////////////////////////////////////////////////////////////////////

class DateTest
{
	public:
	
		void constructionTest();
		void getSetMethodsTest();
		void compareTest();

	private:
	
		DatePtr t_date;

		// metody
		void compare();
		void compareDay();
		void compareMonth();
		void compareYear();
		void compareZone();
};

////////////////////////////////////////////////////////////////////////
//	class DateTestSuite
////////////////////////////////////////////////////////////////////////

class DateTestSuite : public test_suite
{
	public:

		DateTestSuite()
		: test_suite( "test_suite_SingleAddress" )
		{
			test = boost::shared_ptr<DateTest >( new DateTest() );
			test_case *construction = BOOST_CLASS_TEST_CASE(
				&DateTest::constructionTest, test );
			test_case *access = BOOST_CLASS_TEST_CASE(
				&DateTest::getSetMethodsTest, test );
			test_case *compare = BOOST_CLASS_TEST_CASE(
				&DateTest::compareTest, test );

			add( construction );
			add( access );
			add( compare );
		}
		
	private:

		boost::shared_ptr<DateTest > test;
};

}
